package com.zxt.dental_sys.util;

import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

@Component
public class JedisUtil {


    public void setNewVal(int db, String key, String newVal) {
        Jedis jedis = new Jedis("localhost", 6379);
        jedis.select(db);
        if (jedis.exists(key)) {
            jedis.del(key);
        }
        jedis.set(key, newVal);
        jedis.close();
    }

    public void setNewValExpire(int db, String key, String newVal, int expire) {
        Jedis jedis = new Jedis("localhost", 6379);

        jedis.select(db);
        if (jedis.exists(key)) {
            jedis.del(key);
        }
        jedis.set(key, newVal);
        jedis.expire(key, expire);//验证码生存时间为5分钟
        jedis.close();
    }

    public String getValue(int db, String key) {
        Jedis jedis = new Jedis("localhost", 6379);
        jedis.select(db);
        String s = new String();
        if (jedis.exists(key)) {
            s = jedis.get(key);
        }
        jedis.close();
        return s;
    }

    public Long getValueTTL(int db, String key) {
        Jedis jedis = new Jedis("localhost", 6379);
        jedis.select(db);
        long ttl=0L;
        if (jedis.exists(key)){
            ttl = jedis.ttl(key);
        }
        jedis.close();
        return ttl;
    }

    public boolean exist(int db, String key) {
        Jedis jedis = new Jedis("localhost", 6379);
        jedis.select(db);
        boolean exists = jedis.exists(key);
        jedis.close();
        return exists;
    }

    public boolean del(int db, String key) {
        Jedis jedis = new Jedis("localhost", 6379);
        jedis.select(db);
        boolean b = jedis.del(key) > 0;
        jedis.close();
        return b;
    }

    public List<String> keys(int db, String str) {
        Jedis jedis = new Jedis("localhost", 6379);
        jedis.select(db);
        Set<String> keys = jedis.keys(str);
        ArrayList<String> strings = new ArrayList<>(keys);
        jedis.close();
        return strings;
    }


}
